<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Estadistica extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo muestra las estadisticas de un servicio de un cliente
	function visualizar($idSxC=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '2' || $this->session->userdata('tipoUsuarioLog') == '1')){
			//Segunda comprobacion: Que idSxC pasado sea numerico y mayor que cero.
			if(is_numeric($idSxC) && $idSxC>0){
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados
				$this->load->model('m_servicioxcliente');
				
				//Busco al servicio de cliente que hay que visualizar las estadisticas
				$servicio = $this->m_servicioxcliente->get($idSxC);
				
				//Tercera comprobacion: Que el servicio de cliente pasado por la url sea existente y del que esta logeado o que sea un administrador
				if($servicio->num_rows() == 1 && ($servicio->row()->idCliente == $this->session->userdata('idClienteLog') || $this->session->userdata('tipoUsuarioLog') == '1')){
										
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las estadisticas de los servicios
					$this->load->model('m_estadistica');
					
					//Busco la cantidad de visitas de hoy a cada hora del dia
					$visitas0 = $this->m_estadistica->getVisitasDeHoy($idSxC, 0);
					$visitas1 = $this->m_estadistica->getVisitasDeHoy($idSxC, 1);
					$visitas2 = $this->m_estadistica->getVisitasDeHoy($idSxC, 2);
					$visitas3 = $this->m_estadistica->getVisitasDeHoy($idSxC, 3);
					$visitas4 = $this->m_estadistica->getVisitasDeHoy($idSxC, 4);
					$visitas5 = $this->m_estadistica->getVisitasDeHoy($idSxC, 5);
					$visitas6 = $this->m_estadistica->getVisitasDeHoy($idSxC, 6);
					$visitas7 = $this->m_estadistica->getVisitasDeHoy($idSxC, 7);
					$visitas8 = $this->m_estadistica->getVisitasDeHoy($idSxC, 8);
					$visitas9 = $this->m_estadistica->getVisitasDeHoy($idSxC, 9);
					$visitas10 = $this->m_estadistica->getVisitasDeHoy($idSxC, 10);
					$visitas11 = $this->m_estadistica->getVisitasDeHoy($idSxC, 11);
					$visitas12 = $this->m_estadistica->getVisitasDeHoy($idSxC, 12);
					$visitas13 = $this->m_estadistica->getVisitasDeHoy($idSxC, 13);
					$visitas14 = $this->m_estadistica->getVisitasDeHoy($idSxC, 14);
					$visitas15 = $this->m_estadistica->getVisitasDeHoy($idSxC, 15);
					$visitas16 = $this->m_estadistica->getVisitasDeHoy($idSxC, 16);
					$visitas17 = $this->m_estadistica->getVisitasDeHoy($idSxC, 17);
					$visitas18 = $this->m_estadistica->getVisitasDeHoy($idSxC, 18);
					$visitas19 = $this->m_estadistica->getVisitasDeHoy($idSxC, 19);
					$visitas20 = $this->m_estadistica->getVisitasDeHoy($idSxC, 20);
					$visitas21 = $this->m_estadistica->getVisitasDeHoy($idSxC, 21);
					$visitas22 = $this->m_estadistica->getVisitasDeHoy($idSxC, 22);
					$visitas23 = $this->m_estadistica->getVisitasDeHoy($idSxC, 23);
					
					//Le paso la cantidad de visitas por hora a la vista para que la muestre en en grafico
					$datos['visitas0'] = $visitas0->row()->cantidad;
					$datos['visitas1'] = $visitas1->row()->cantidad;
					$datos['visitas2'] = $visitas2->row()->cantidad;
					$datos['visitas3'] = $visitas3->row()->cantidad;
					$datos['visitas4'] = $visitas4->row()->cantidad;
					$datos['visitas5'] = $visitas5->row()->cantidad;
					$datos['visitas6'] = $visitas6->row()->cantidad;
					$datos['visitas7'] = $visitas7->row()->cantidad;
					$datos['visitas8'] = $visitas8->row()->cantidad;
					$datos['visitas9'] = $visitas9->row()->cantidad;
					$datos['visitas10'] = $visitas10->row()->cantidad;
					$datos['visitas11'] = $visitas11->row()->cantidad;
					$datos['visitas12'] = $visitas12->row()->cantidad;
					$datos['visitas13'] = $visitas13->row()->cantidad;
					$datos['visitas14'] = $visitas14->row()->cantidad;
					$datos['visitas15'] = $visitas15->row()->cantidad;
					$datos['visitas16'] = $visitas16->row()->cantidad;
					$datos['visitas17'] = $visitas17->row()->cantidad;
					$datos['visitas18'] = $visitas18->row()->cantidad;
					$datos['visitas19'] = $visitas19->row()->cantidad;
					$datos['visitas20'] = $visitas20->row()->cantidad;
					$datos['visitas21'] = $visitas21->row()->cantidad;
					$datos['visitas22'] = $visitas22->row()->cantidad;
					$datos['visitas23'] = $visitas23->row()->cantidad;
					
					//Busco la cantidad de visitas de cada dia del mes actual					
					$visitasDia1 = $this->m_estadistica->getVisitasPorDia($idSxC, 1);
					$visitasDia2 = $this->m_estadistica->getVisitasPorDia($idSxC, 2);
					$visitasDia3 = $this->m_estadistica->getVisitasPorDia($idSxC, 3);
					$visitasDia4 = $this->m_estadistica->getVisitasPorDia($idSxC, 4);
					$visitasDia5 = $this->m_estadistica->getVisitasPorDia($idSxC, 5);
					$visitasDia6 = $this->m_estadistica->getVisitasPorDia($idSxC, 6);
					$visitasDia7 = $this->m_estadistica->getVisitasPorDia($idSxC, 7);
					$visitasDia8 = $this->m_estadistica->getVisitasPorDia($idSxC, 8);
					$visitasDia9 = $this->m_estadistica->getVisitasPorDia($idSxC, 9);
					$visitasDia10 = $this->m_estadistica->getVisitasPorDia($idSxC, 10);
					$visitasDia11 = $this->m_estadistica->getVisitasPorDia($idSxC, 11);
					$visitasDia12 = $this->m_estadistica->getVisitasPorDia($idSxC, 12);
					$visitasDia13 = $this->m_estadistica->getVisitasPorDia($idSxC, 13);
					$visitasDia14 = $this->m_estadistica->getVisitasPorDia($idSxC, 14);
					$visitasDia15 = $this->m_estadistica->getVisitasPorDia($idSxC, 15);
					$visitasDia16 = $this->m_estadistica->getVisitasPorDia($idSxC, 16);
					$visitasDia17 = $this->m_estadistica->getVisitasPorDia($idSxC, 17);
					$visitasDia18 = $this->m_estadistica->getVisitasPorDia($idSxC, 18);
					$visitasDia19 = $this->m_estadistica->getVisitasPorDia($idSxC, 19);
					$visitasDia20 = $this->m_estadistica->getVisitasPorDia($idSxC, 20);
					$visitasDia21 = $this->m_estadistica->getVisitasPorDia($idSxC, 21);
					$visitasDia22 = $this->m_estadistica->getVisitasPorDia($idSxC, 22);
					$visitasDia23 = $this->m_estadistica->getVisitasPorDia($idSxC, 23);
					$visitasDia24 = $this->m_estadistica->getVisitasPorDia($idSxC, 24);
					$visitasDia25 = $this->m_estadistica->getVisitasPorDia($idSxC, 25);
					$visitasDia26 = $this->m_estadistica->getVisitasPorDia($idSxC, 26);
					$visitasDia27 = $this->m_estadistica->getVisitasPorDia($idSxC, 27);
					$visitasDia28 = $this->m_estadistica->getVisitasPorDia($idSxC, 28);
					$visitasDia29 = $this->m_estadistica->getVisitasPorDia($idSxC, 29);
					$visitasDia30 = $this->m_estadistica->getVisitasPorDia($idSxC, 30);
					$visitasDia31 = $this->m_estadistica->getVisitasPorDia($idSxC, 31);
					
					//Le paso la cantidad de visitas por dia a la vista para que la muestre en en grafico
					$datos['visitasDia1'] = $visitasDia1->row()->cantidad;
					$datos['visitasDia2'] = $visitasDia2->row()->cantidad;
					$datos['visitasDia3'] = $visitasDia3->row()->cantidad;
					$datos['visitasDia4'] = $visitasDia4->row()->cantidad;
					$datos['visitasDia5'] = $visitasDia5->row()->cantidad;
					$datos['visitasDia6'] = $visitasDia6->row()->cantidad;
					$datos['visitasDia7'] = $visitasDia7->row()->cantidad;
					$datos['visitasDia8'] = $visitasDia8->row()->cantidad;
					$datos['visitasDia9'] = $visitasDia9->row()->cantidad;
					$datos['visitasDia10'] = $visitasDia10->row()->cantidad;
					$datos['visitasDia11'] = $visitasDia11->row()->cantidad;
					$datos['visitasDia12'] = $visitasDia12->row()->cantidad;
					$datos['visitasDia13'] = $visitasDia13->row()->cantidad;
					$datos['visitasDia14'] = $visitasDia14->row()->cantidad;
					$datos['visitasDia15'] = $visitasDia15->row()->cantidad;
					$datos['visitasDia16'] = $visitasDia16->row()->cantidad;
					$datos['visitasDia17'] = $visitasDia17->row()->cantidad;
					$datos['visitasDia18'] = $visitasDia18->row()->cantidad;
					$datos['visitasDia19'] = $visitasDia19->row()->cantidad;
					$datos['visitasDia20'] = $visitasDia20->row()->cantidad;
					$datos['visitasDia21'] = $visitasDia21->row()->cantidad;
					$datos['visitasDia22'] = $visitasDia22->row()->cantidad;
					$datos['visitasDia23'] = $visitasDia23->row()->cantidad;
					$datos['visitasDia24'] = $visitasDia24->row()->cantidad;
					$datos['visitasDia25'] = $visitasDia25->row()->cantidad;
					$datos['visitasDia26'] = $visitasDia26->row()->cantidad;
					$datos['visitasDia27'] = $visitasDia27->row()->cantidad;
					$datos['visitasDia28'] = $visitasDia28->row()->cantidad;
					$datos['visitasDia29'] = $visitasDia29->row()->cantidad;
					$datos['visitasDia30'] = $visitasDia30->row()->cantidad;
					$datos['visitasDia31'] = $visitasDia31->row()->cantidad;
					
					//Busco la cantidad de visitas de cada mes del año					
					$visitasMes1 = $this->m_estadistica->getVisitasPorMes($idSxC, 1);
					$visitasMes2 = $this->m_estadistica->getVisitasPorMes($idSxC, 2);
					$visitasMes3 = $this->m_estadistica->getVisitasPorMes($idSxC, 3);
					$visitasMes4 = $this->m_estadistica->getVisitasPorMes($idSxC, 4);
					$visitasMes5 = $this->m_estadistica->getVisitasPorMes($idSxC, 5);
					$visitasMes6 = $this->m_estadistica->getVisitasPorMes($idSxC, 6);
					$visitasMes7 = $this->m_estadistica->getVisitasPorMes($idSxC, 7);
					$visitasMes8 = $this->m_estadistica->getVisitasPorMes($idSxC, 8);
					$visitasMes9 = $this->m_estadistica->getVisitasPorMes($idSxC, 9);
					$visitasMes10 = $this->m_estadistica->getVisitasPorMes($idSxC, 10);
					$visitasMes11 = $this->m_estadistica->getVisitasPorMes($idSxC, 11);
					$visitasMes12 = $this->m_estadistica->getVisitasPorMes($idSxC, 12);
										
					//Le paso la cantidad de visitas por mes a la vista para que la muestre en en grafico
					$datos['visitasMes1'] = $visitasMes1->row()->cantidad;
					$datos['visitasMes2'] = $visitasMes2->row()->cantidad;
					$datos['visitasMes3'] = $visitasMes3->row()->cantidad;
					$datos['visitasMes4'] = $visitasMes4->row()->cantidad;
					$datos['visitasMes5'] = $visitasMes5->row()->cantidad;
					$datos['visitasMes6'] = $visitasMes6->row()->cantidad;
					$datos['visitasMes7'] = $visitasMes7->row()->cantidad;
					$datos['visitasMes8'] = $visitasMes8->row()->cantidad;
					$datos['visitasMes9'] = $visitasMes9->row()->cantidad;
					$datos['visitasMes10'] = $visitasMes10->row()->cantidad;
					$datos['visitasMes11'] = $visitasMes11->row()->cantidad;
					$datos['visitasMes12'] = $visitasMes12->row()->cantidad;
										
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra las estadisticas del servicio y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_estadisticas_visualizar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para visualizar las estadisticas de un servicio
					$this->load->view('v_admin', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para visualizar las estadisticas de un servicio
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo sirve para registrar la visita de un usuario en la base de datos para luego mostrar estadisticas
	function registrar($idSxC=null){
		//Primera comprobacion: Que idSxC pasado sea numerico y mayor que cero.
		if(is_numeric($idSxC) && $idSxC>0){
			//Cargo el modelo donde estan los datos de los servicios de clientes registrados
			$this->load->model('m_servicioxcliente');
			
			//Busco al servicio de cliente que hay que registrarle una visita
			$servicio = $this->m_servicioxcliente->get($idSxC);
			
			//Tercera comprobacion: Que el servicio de cliente pasado por la url sea existente
			if($servicio->num_rows() == 1){
				//Cargo la libreria para obtener el navegador desde donde se entra a la web
				$this->load->library('user_agent');
				
				//Cargo el modelo donde estan los datos de las auditorias del sistema registradas
				$this->load->model('m_auditoria');
				
				//Busco la ultima visita del usuario al servicio en cuestion
				$auditoria = $this->m_auditoria->get($idSxC, $_SERVER['REMOTE_ADDR'], $this->agent->browser());
				
				if($auditoria->num_rows() == 0){
					//Guardo en la auditoria la visita al servicio - Donde, que, quien, como, navegador
					$this->m_auditoria->crearAuditoria($_SERVER['REMOTE_ADDR'], 7, $idSxC, 'Estadisticas', $this->agent->browser());
					
					echo("OK-".date("Y-m-d H:i:s")." - ".$_SERVER['REMOTE_ADDR']." - ".$this->agent->browser());
				} else {
					//Calculo la diferencia entre la fecha actual y la ultima visita para saber si ya paso mas de 9 minutos y volver a registrar la visita
					$fecha = $auditoria->row()->fechaCreacion;
					
					$segundos = strtotime(date("Y-m-d h:i:s")) - strtotime($fecha);
					$minutos = $segundos/60;
										
					if($minutos >= 9){
						//Guardo en la auditoria la visita al servicio - Donde, que, quien, como, navegador
						$this->m_auditoria->crearAuditoria($_SERVER['REMOTE_ADDR'], 7, $idSxC, 'Estadisticas', $this->agent->browser());
						
						echo("OK-".date("Y-m-d H:i:s")." - ".$_SERVER['REMOTE_ADDR']." - ".$this->agent->browser());					
					} else {				
						echo("NO-".date("Y-m-d H:i:s")." - ".$_SERVER['REMOTE_ADDR']." - ".$this->agent->browser());
					}
				}
			} else {
				//El registro no existe.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
			}
		} else {
			//No se han pasado los parametros minimos necesarios para registrar la visita a un servicio de cliente
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}		
	}
}

/* End of file estadistica.php */
/* Location: ./application/controllers/estadistica.php */